Electronic data systems are frequently interconnected using network communication systems. Area-wide networks and channels are two approaches that have been developed for computer network architectures. Traditional networks (e.g., LAN's and WAN's) offer a great deal of flexibility and relatively large distance capabilities. Channels, such as the Enterprise System Connection (ESCON) and the Small Computer System Interface (SCSI), have been developed for high performance and reliability. Channels typically use dedicated short-distance connections between computers or between computers and peripherals.
Features of both channels and networks have been incorporated into a new network standard known as "Fibre Channel". Fibre Channel systems combine the speed and reliability of channels with the flexibility and connectivity of networks. Fibre Channel products currently can run at very high data rates, such as 266 Mbps or 1062 Mbps. These speeds are sufficient to handle quite demanding applications, such as uncompressed, full motion, high-quality video. ANSI specifications, such as X3.230-1994, define the Fibre Channel network. This specification distributes Fibre Channel functions among five layers. The five functional layers of the Fibre Channel are: FC-0--the physical media layer; FC-1--the coding and encoding layer; FC-2--the actual transport mechanism, including the framing protocol and flow control between nodes; FC-3--the common services layer; and FC-4--the upper layer protocol.
There are generally three ways to deploy a Fibre Channel network: simple point-to-point connections; arbitrated loops; and switched fabrics. The simplest topology is the point-to-point configuration, which simply connects any two Fibre Channel systems directly. Arbitrated loops are Fibre Channel ring connections that provide shared access to bandwidth via arbitration. Switched Fibre Channel networks, called "fabrics", are a form of cross-point switching.
Conventional Fibre Channel Arbitrated Loop ("FC-AL") protocols provide for loop functionality in the interconnection of devices or loop segments through node ports. However, direct interconnection of node ports is problematic in that a failure at one node port in a loop typically causes the failure of the entire loop. This difficulty is overcome in conventional Fibre Channel technology through the use of hubs. Hubs include a number of hub ports interconnected in a loop topology. Node ports are connected to hub ports, forming a star topology with the hub at the center. Hub ports which are not connected to node ports or which are connected to failed node ports are bypassed. In this way, the loop is maintained despite removal or failure of node ports.
For example, FIG. 1 illustrates a hub 100 with six hub ports 102, 104, 106, 108, 110, 112 (the number of hub ports and node ports illustrated in FIG. 1 is for illustrative purposes only and does not limit the application of the technology provided by the preferred embodiment). Hub ports 102-112 are interconnected by internal hub links 114, 116, 118, 120, 122, 124. Four node ports 126, 128, 130, 132 are attached to hub ports 102, 106, 110, 112, respectively. A physical star topology is created by node ports 126-132 around hub 100. The internal connection of hub ports 102-112 by internal hub links 114-124 forms an internal loop within hub 100 and creates a loop topology among node ports 126-132.
Each node port is connected to a hub port by a pair of data channels. For example, node port 126 is connected to hub port 102 by data channels 134 and 136. Data channel 134 transmits data from hub port 102 to node port 126. Data channel 136 transmits data from node port 126 to hub port 102. In this way, a datapath is created around the loop including each of the hub ports and the node ports.
In a conventional FC-AL hub, data received by a hub port from a node port may have a bit boundary which is out of phase and synchronization relative to data received by other hub ports in the loop of the same hub. Each node port transmits data to its corresponding hub port using a clock internal to that node port. Thus each datastream introduced to the hub loop is sent with a different clock. Because the signals are sent with different clocks the bit boundaries of the signals are often out of phase relative to one another. When a node port receives a datastream from its corresponding hub port, the node port recovers the clock signal from the datastream and synchronizes the datastream to its own internal clock, such as with a phase lock loop.
Synchronization is typically detrimentally affected by switching hub ports in and out of bypass mode, such as upon the insertion and removal of node ports from the loop. Under a conventional implementation, a hub port which is connected to a node port receives two datastreams: one from the preceding hub port and one from the attached node port. The two datastreams are not necessarily synchronized because each is typically from a different node port and so has a different clock. If this switch occurs at a time which does not coincide with a bit boundary in the datastream, bit synchronization at the point in the datastream of the switch from one input to another is lost. The bit boundary shifts from that of the old datastream to that of the new datastream. Consequently, word synchronization may also be lost. When a node port attempts to recover the clock signal from this datastream, the loss of bit synchronization may prevent a successful recovery necessitating re-synchronization. The re-synchronization required consumes time as well as possibly generating errors. A similar problem occurs when a node port is initially connected to a hub port and the hub port switches out of bypass mode.
For example, in FIG. 1, hub port 106 receives data from hub port 104 and from node port 128. When hub port 106 switches to bypass mode, such as when node port 128 is disconnected, hub port 106 stops outputting data from node port 128 and switches to outputting data received from hub port 104. Because the two datastreams are not necessarily in phase this switch may cause a loss in bit synchronization. When node port 130 attempts to recover the clock signal from the datastream, the recovery may fail causing node port 130 to re-synchronize the datastream.
Under conventional FC-AL protocols, when synchronization is lost by a node port, such as by phase shifted bit boundaries, and is not recovered within a timeout period, loop initialization primitive ("LIP") primitive sequences may be generated by one or more node ports to reinitialize the loop. LIP primitive sequences are formed from three consecutive identical LIP ordered sets. LIP ordered sets are known and defined in conventional FC-AL protocols. When node ports receive a LIP primitive sequence, node ports typically end ordinary processing and may generate LIP primitive sequences of their own. Under conventional FC-AL protocols, the loop may not return to ordinary processing for as long as approximately 500 to 600 microseconds. This delay is an undesirable result of synchronization errors. In addition, some computer software applications being used across the loop may not be tolerant of the LIP process, and, at the very least, all applications experience a delay. An application may "crash" (i.e., abruptly and completely stop execution) and need to be restarted to continue processing. Such a crash increases the amount of delay experienced by users or other processes connected to the loop. In addition, data loss or data corruption may result as data storage devices may not be properly accessed upon the crash generated by the LIP process.
Accordingly, the inventors have determined that it would be desirable to provide a hub port which internally synchronizes signals passed around a loop network having characteristics similar to Fibre Channel Arbitrated Loop networks.